package com.example.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.example.Utils.lookUpUtils;
import com.example.pojo.repairBookPojo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * ClassName:repairBookMapp
 * Description:
 *
 * @Author 赵永峰
 * @Create 2024/4/10 11:20
 * @Version 1.0
 */
@Mapper
public interface repairBookMapp {
    /*
     * 按照ID，修改某一个字段的值
     **/


    /*
     * 查询,根据ID，查询某一个字段的值
     * */
    @DS("baodingRussia")
     @Select("select ${fieldName} from russia_engine.repair_book where id = #{id}")
    String lookUpId(Integer id,String fieldName);
    /*
    * 查询作业指导书的步骤，用的是所属车间、作业指导书名字进行查找。
    * */
    @DS("baodingRussia")
    @Select("select * from russia_engine.repair_book where ${workshopName}=#{workshop} and ${taksNameName}=#{taksName}")
    List<repairBookPojo> list(String workshop, String taksName,String workshopName,String taksNameName);

    /**
     *查询某一个字段不重复项，并且返回查询回来的数值，作为字符串List传回
     */
    @DS("baodingRussia")
    @Select("select distinct ${fieldName} from russia_engine.repair_book")
    List<String> OneOneStr(String fieldName);
    /**
     *查询某一个字段不重复项，并且满足另一个字段某一个值，返回查询回来的数值，作为字符串List传回
     */
    @DS("baodingRussia")
    @Select("select distinct ${fieldNameA} from russia_engine.repair_book where ${fieldNameB} = #{valueToMatch}" )
    List<String> findDistinctBValuesByA(String fieldNameA,String fieldNameB, String valueToMatch);

    /**
     * 更新返工返修作业指导书的数据
     * @param repairBook
     */
    /*
     * 按照ID，修改某一个字段的值
     **/
    @DS("baodingRussia")
    void update(repairBookPojo repairBook);
    /*
     * 插入一个新的步骤
     **/
    @DS("baodingRussia")
    void addStep(repairBookPojo repairBookPojo);
    /*接收前端的删除命令，对操作步骤进行删除*/
    @DS("baodingRussia")
    @Select("delete from russia_engine.repair_book where id=#{id}")
    void repairDelete(Integer id);


    //对表只写入文件名称的接口
    @Select("update repair_book set fileNameAll=#{fileNameAll} where id=#{id}")
    void updateOnlyFileName(repairBookPojo tableDataTemp);
}
